【嵌入式 您所在的位置:网站首页 stm32 gpio配置成输入 【嵌入式

【嵌入式

2024-07-02 18:16| 来源: 网络整理| 查看: 265

原文地址:STM32的GPIO端口配置八种模式的理解

一、GPIO的结构框图

在这里插入图片描述

在这张图中,GPIO的配置可以分成8种模式,4种输入,4种输出。

输入分为:模拟输入、浮空输入、上拉输入、下拉输入

输出分为:开漏输出、推挽输出、复用推挽输出、复用开漏输出

二、八种模式 1. 模拟输入(GPIO_Mode_AIN)

在这里插入图片描述

模拟输入,一般情况下,用于ADC的采集电压时,配置的输入IO口。在模拟输入中,TTL肖特基触发器以及上拉电阻和下拉电阻都处于关闭状态。即使配置上拉或下拉模式,不会影响到模拟信号的输入输出。

2. 浮空输入(GPIO_Mode_IN_FLOATING )

在这里插入图片描述 浮空输入,IO的电平状态是不确定的,完全由外部输入决定,如果该引脚悬空的情况下,读取该端口的电平是不确定的,有可能是高电平,也有可能是低电平。

3. 上拉输入(GPIO_Mode_IPU)

在这里插入图片描述 上拉输入,将一个不确定的信号,通过一个电阻与电源VCC相连,固定在高电平,IO口为高电平。 在上拉输入中接入了一个电阻,它的作用是为了确保信号输入时输入端的电平为高电平。

4. 下拉输入(GPIO_Mode_IPD )

在这里插入图片描述 下拉输入,将一个不确定的信号,通过一个电阻与地GND相连,固定在低电平,IO口为低电平。 与上拉输入同理,在下拉输入中接入了一个电阻,它的作用是为了确保信号输入时输入端的电平为低电平。

5. 开漏输出( GPIO_Mode_Out_OD )

在这里插入图片描述 开漏输出,在这个模式下,是能够输出低电平,但无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。同时,P-MOS管是处于关闭的,N-MOS管是开启的。当输出寄存器的值为0的时候,N-MOS管导通,此时IO口的电平被N-MOS管拉到VSS,输出为低电平。当输出寄存器为1的时候,N-MOS管截止,IO口直接和输出端断开了,处于浮空状态。

6. 推挽输出( GPIO_Mode_Out_PP )

在这里插入图片描述 推挽输出,它的P-MOS管和N-MOS管是打开的状态,当输出寄存器的值为0的时候,N-MOS管导通,此时IO口的电平被N-MOS管拉到VSS,输出为低电平。当输出寄存器为1的时候,P-MOS管导通,此时IO口的电平被P-MOS管拉到VDD,输出为高电平。简单点讲就是想输出高电平,就输出高电平,想输出低电平,就输出低电平。

注开漏输出和推挽输出的区别:开漏输出只有N-MOS管是开启的,P-MOS管是关闭的。

复用功能

可以理解为普通的GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用),复用功能模式中,一般直接用外设的寄存器来获取该数据信号。

7. 复用开漏输出 ( GPIO_Mode_AF_OD )

在这里插入图片描述 复用开漏输出模式,与开漏输出模式很是相似。只是输出的高低电平的来源不同,不是让CPU写输出数据寄存器了,而是用片内外设模块的复用功能输出来决定的。复用开漏输出中的片内外设功能(TX1,MOSI,MISO.SCK.SS)。

8. 复用推挽输出( GPIO_Mode_AF_PP )

在这里插入图片描述

同理,复用推挽输出模式,与推挽输出模式也是相似。输出的高低电平的来源不同,不是让CPU写输出数据寄存器,而是利用片内外设模块的复用功能输出来决定的。复用推挽输出中的片内外设功能(I2C的SCL,SDA)。

总结

以上就是我关于STM32中配置GPIO的八种模式的理解,谢谢观看。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有